package com.brillilab.service.core.notice;

import com.brillilab.common.entity.PageVo;
import com.brillilab.domain.po.notice.Notice;
import com.brillilab.domain.vo.lab.LabMemberVo;
import com.brillilab.domain.vo.notice.NoticeDetail;
import com.brillilab.domain.pa.notice.NoticePa;
import com.brillilab.domain.vo.notice.NoticeSearch;
import com.brillilab.domain.vo.notice.NoticeVo;
import com.brillilab.domain.vo.user.UserInfoVo;

import java.util.List;

/**
 * 公告
 * @author wmh
 */
public interface INoticeService {
    Notice insert(Notice notice);

    Notice update(Notice update);

    Boolean delete(Long id,Long labId);

    Notice selectOne(Long noticeId,Long labId);

    NoticeDetail selectNoticeDetail(Long id,Long labId);

    List<Notice> selectList(Long labId);

    Notice publishNotice(NoticePa notice,UserInfoVo userInfo);

    PageVo<NoticeVo> getAndSearchNoticeList(NoticeSearch noticeSearch);

    List<LabMemberVo> selectReadMemberList(Long noticeId,Long labId);

    NoticeDetail getNoticeDetailAndSetReadMember(Long noticeId,UserInfoVo userInfo);

    Notice editeNotice(NoticePa notice,UserInfoVo userInfo);

    Notice setTopNotice(Long noticeId,Integer isTop,UserInfoVo userInfo);

    Notice publishNoticeNew(NoticePa notice,UserInfoVo userInfo);

    Notice editNoticeNew(NoticePa notice,UserInfoVo userInfo);
}
